@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo 🚀 开始设置 Electron-IM 开发环境...

REM 检查是否以管理员身份运行
net session >nul 2>&1
if %errorLevel% == 0 (
    echo ✅ 检测到管理员权限
) else (
    echo ⚠️  建议以管理员身份运行此脚本以获得最佳体验
    echo 请右键点击命令提示符，选择"以管理员身份运行"
    pause
)

REM 检查是否已安装 nvm-windows
where nvm >nul 2>&1
if %errorLevel% == 0 (
    echo ✅ nvm-windows 已安装
    for /f "tokens=*" %%i in ('nvm version') do set NVM_VERSION=%%i
    echo 📦 nvm 版本: !NVM_VERSION!
) else (
    echo 📥 正在检查 nvm-windows 安装...
    echo 请访问 https://github.com/coreybutler/nvm-windows/releases
    echo 下载并安装最新版本的 nvm-setup.exe
    echo 安装完成后，请重新运行此脚本
    pause
    exit /b 1
)

REM 检查 Node.js 版本
where node >nul 2>&1
if %errorLevel% == 0 (
    for /f "tokens=*" %%i in ('node -v') do set NODE_VERSION=%%i
    echo 📦 当前 Node.js 版本: !NODE_VERSION!
    
    REM 检查是否是 v20
    echo !NODE_VERSION! | findstr /C:"v20" >nul
    if !errorLevel! == 0 (
        echo ✅ Node.js 版本符合要求 (v20)
    ) else (
        echo ⚠️  Node.js 版本不是 v20，正在切换...
        nvm install 20
        nvm use 20
        echo ✅ 已切换到 Node.js v20
    )
) else (
    echo 📥 正在安装 Node.js v20...
    nvm install 20
    nvm use 20
    echo ✅ Node.js v20 安装完成
)

REM 检查 pnpm
where pnpm >nul 2>&1
if %errorLevel% == 0 (
    for /f "tokens=*" %%i in ('pnpm --version') do set PNPM_VERSION=%%i
    echo 📦 pnpm 已安装，版本: !PNPM_VERSION!
) else (
    echo 📥 正在安装 pnpm...
    npm install -g pnpm
    echo ✅ pnpm 安装完成
)

REM 设置 npm 镜像源（可选，提高下载速度）
echo 🌐 设置 npm 镜像源...
npm config set registry https://registry.npmmirror.com

REM 验证安装
echo.
echo 🔍 验证安装结果:
for /f "tokens=*" %%i in ('node -v') do echo Node.js 版本: %%i
for /f "tokens=*" %%i in ('npm -v') do echo npm 版本: %%i
for /f "tokens=*" %%i in ('pnpm --version') do echo pnpm 版本: %%i
for /f "tokens=*" %%i in ('nvm version') do echo nvm 版本: %%i

echo.
echo 🎉 环境设置完成！
echo.
echo 📋 接下来的步骤:
echo 1. 进入项目目录: cd Electron-IM
echo 2. 安装依赖: pnpm install
echo 3. 启动项目: pnpm dev
echo.
echo 💡 提示: 如果遇到权限问题，请以管理员身份运行命令提示符

pause 